b4812ca3a5b5fd3dadad9b34b558375c69aab38c,hazelcast/src/main/java/com/hazelcast/impl/management/ThreadDumpGeneratorImpl_16.java,ThreadDumpGeneratorImpl_16,appendThreadInfo,#ThreadInfo#StringBuilder#,75
Before Change
sb.append(" on " + info.getLockName());
}
if (info.getLockOwnerName() != null) {
sb.append(" owned by \"" + info.getLockOwnerName() +
"\" Id=" + info.getLockOwnerId());
}
if (info.isSuspended()) {
sb.append(" (suspended)");
After Change
sb.append(" on ").append(info.getLockName());
}
if (info.getLockOwnerName() != null) {
sb.append(" owned by \"").append(info.getLockOwnerName()).
append("\" Id=").append( + info.getLockOwnerId());
}
if (info.isSuspended()) {
sb.append(" (suspended)");
}
if (info.isInNative()) {
sb.append(" (in native)");
}
sb.append('\n');
final StackTraceElement[] stackTrace = info.getStackTrace();
final Object lockInfo = objectCall(info, ThreadInfo_getLockInfo);
final Object[] monitorInfo = objectCall(info, ThreadInfo_getLockedMonitors);
for (int i = 0; i < stackTrace.length; i++) {
StackTraceElement ste = stackTrace[i];
sb.append("\tat ").append(ste.toString());
sb.append('\n');
if (i == 0 && lockInfo != null) {
Thread.State ts = info.getThreadState();
switch (ts) {
case BLOCKED:
sb.append("\t- blocked on ").append(lockInfo);
sb.append('\n');
break;
case WAITING:
sb.append("\t- waiting on ").append(lockInfo);
sb.append('\n');
break;
case TIMED_WAITING:
sb.append("\t- waiting on ").append(lockInfo);
sb.append('\n');
break;
default:
}
}
for (Object mi : monitorInfo) {
Integer depth = objectCall(mi, MonitorInfo_getLockedStackDepth);
if (depth == i) {
sb.append("\t- locked ").append(mi);
sb.append('\n');
}
}